#include<stdio.h>
#include "gestion_des_capteurs.h"
/*fonction test de nom */

int comparer_nom(Capteur*c)
{ FILE *f;
  Capteur cap;
  int res=0;

  f=fopen("fichier_capteur","r");
  if (f!=NULL)
	{
         while(fread(&cap,sizeof(Capteur),1,f)!=0 && res==0)
 	    {
	      if(strcmp(c->nom,cap.nom)==0)
	       res=1;
 	    }
 	}
return res;
}

/* fonction saisie des capteurs */

void saisir_capteur(Capteur *c)
{ int comp =0;
 
do {
       printf("Donnez le nom du capteur:");fflush(stdin);
	scanf("%s",c->nom);
	comp = comparer_nom(c);
       if (comp==1) 
{printf("le nom existe deja veillez reesayer\n");}
}while(comp ==1);
	printf("Donnez la designation du capteur:");fflush(stdin);
	scanf("%s",c->designation);
       
  
}


/*fonction affichage des capteurs */

void afficher_capteur (char fichier_capteur[])
{
Capteur c; 
int i=0;
FILE *f;
  	
f = fopen(fichier_capteur, "rb");

    if (f!=NULL)

	{ 
	  
		while(fread(&c,sizeof(Capteur),1,f)!=0)
			{i++;
  printf("\n capteur: \n Nom :%s \n designation: %s \n",c.nom,c.designation);
			}
	}

	else

	printf("Erreur d'ouverture");

fclose(f);
}

/* fonction enregistrement des capteurs */

void Enregistrer_capteur(char fichier_capteur[],Capteur *c)
{
 FILE *f;
  	
f = fopen(fichier_capteur, "ab");
    
if (f!=NULL)
	
	{ 
	  saisir_capteur(c);
	  fwrite(c,sizeof(Capteur),1,f);
	}
else

	printf("Erreur d'ouverture");

fclose(f);


}

/* fonction recherche des capteurs */

int  rechercher_capteur(char fichier_capteur[], char nom [] )
{
 Capteur c ;
 char nomcherche [10];
 int existe=0;
 int choix;
 int Quit=0;
 FILE *f;

                   f=fopen(fichier_capteur, "rb");

 		printf ("\n donner le nom du capteur :\n") ;
 		scanf("%s",nomcherche);

 	if (f!=NULL)
		 {

	    while(fread(&c,sizeof(Capteur),1,f)!=0 && existe!=1)

            	 {
                     if (strcmp(nomcherche,c.nom)==0)
	      				
		         	 {existe=1;}
                 }
                       if (existe == 1)
          
		 { printf("le capteur recherche existe \n");
	printf(" Nom: %s \n designation: %s \n ",c.nom,c.designation); 
                 }
		else printf("le capteur recherche n'existe pas \n");
          }
	        
            fclose(f);
  


  


return(existe);
}

/*fonction modifier un capteur*/


void modifier_capteur( char fichier_capteur[] )
{
char tmp[]="tmp.txt";
Capteur c;
FILE *f ;
FILE *t ;
char nom [10];
printf("\n donner le nom du capteur que vous voulez modifier:\n");
scanf("%s", nom);
f=fopen(fichier_capteur,"rb") ;
t=fopen(tmp,"wb") ;
if (f!= NULL && t!=NULL)
{
while(fread(&c,sizeof(Capteur),1,f)!=0)
{
if(strcmp (nom,c.nom)!=0)
{ fwrite(&c,sizeof(Capteur),1,t) ;
}
if(strcmp(nom,c.nom)==0)
{
	saisir_capteur(&c);
  	fwrite(&c,sizeof(Capteur),1,t);
}
}
}

printf("le capteur est modifier\n");
fclose(f) ;
fclose(t) ;
remove(fichier_capteur);
rename(tmp,fichier_capteur);
}
 
/* fonction supprimer capteur */ 

void supprimer_capteur( char fichier_capteur[] )
{
char tmp[]="tmp.txt";
Capteur c;
FILE *f ;
FILE *t ;
char nom [10];
printf("\n donner le nom du capteur supprimer:\n");
scanf("%s", nom);
f=fopen(fichier_capteur,"rb") ;
t=fopen(tmp,"wb") ;
if (f!= NULL && t!=NULL)
{
while(fread(&c,sizeof(Capteur),1,f)!=0)
{
if(strcmp (nom,c.nom)!=0)
{ fwrite(&c,sizeof(Capteur),1,t) ;
}
}
}

printf("le capteur est supprime\n");
fclose(f) ;
fclose(t) ;
remove(fichier_capteur);
rename(tmp,fichier_capteur);
}


